package cn.com.wxd.common;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * Title:日期工具类
 * Description:cn.com.wxd.util
 * 
 * Company: Amumu管理平台
 * Copyright: Copyright (c) 2015
 * All right reserved.
 * Created time: 2016-9-2 下午2:52:11
 *
 * @author WangXuDong
 * @version 1.0
 */
public class DateUtil {
	private static final Logger log = LoggerFactory.getLogger(DateUtil.class);
	/**
	 * 获取当前系统日期
	 * @return 系统日期yyyy-MM-dd
	 */
	public static String getDateStr(){
		DateFormat format=new SimpleDateFormat("yyyy-MM-dd");
		return format.format(new Date());
	}
	/**
	 * 获取当前系统日期时间
	 * @return 系统日期时间yyyy-MM-dd hh:mm:ss
	 */
	public static String getDatetimeStr(){
		DateFormat format=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		return format.format(new Date());
	}
	/**
	 * 获取当前系统日期时间
	 * @param format
	 * @return 系统日期时间
	 */
	public static String getDatetimeStr(String format){
		DateFormat ss=new SimpleDateFormat(format);
		return ss.format(new Date());
	}
	/**
	 * 获取时间戳
	 * @return 时间戳字符串yyyyMMddhhmmss
	 */
	public static String getTimestamp(){
		DateFormat format=new SimpleDateFormat("yyyyMMddHHmmss");
		return format.format(new Date());
	}
	/**
	 * 获取时间差
	 * @param starTime 开始时间 格式(yyyy-MM-dd hh:mm:ss)
	 * @param entTiem 结束时间 格式(yyyy-MM-dd hh:mm:ss)
	 * @return 秒
	 * @throws ParseException 
	 */
	public static long getTimePoor(String starTime,String entTiem) throws ParseException{
		SimpleDateFormat dfs = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		Date begin = dfs.parse(starTime);
		Date end   = dfs.parse(entTiem);
		return (end.getTime()-begin.getTime())/1000;//除以1000是为了转换成秒
	}
	/**
	 * 根据日期字符串获取Calendar对象
	 * @param date 日期字符串
	 * @param format 日期格式
	 * @return Calendar对象(java中获取的月份从0开始)
	 */
	public static Calendar getCalendar(String date,String format){
		SimpleDateFormat sdf =   new SimpleDateFormat(format);
		if(date!=null&&!date.equals("")){
			Calendar c = Calendar.getInstance();
			try {
				c.setTime(sdf.parse(date));
				return c;
			} catch (ParseException e) {
				log.error(e.getMessage());
			}
		}
		return null;
	}
}
